[Kettle]01 一、入门

Kettle入门

Posted by 李玉坤 on 2018-01-10

Kettle简介

企业数据仓库模型

ETL简介

ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程),对于企业或行业应用来说,我们经常会遇到各种数据的处理,转换,迁移,所以了解并掌握一种etl工具的使用,必不可少,这里我要学习的ETL工具是Kettle!

Kettle简介

Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定
Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。
Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做
Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。
Kettle(现在已经更名为PDI,Pentaho Data Integration-Pentaho数据集成)。

Kettle的结构

Kettle的结构-Spoon和Data Integration Server

Spoon是构建ETL JobsTransformations的工具。Spoon以拖拽的方式图形化设计,能够通过spoon调用专用的数据集成引擎或者集群

Data Integration Server是一个专用的ETL Server,它的主要功能有:

Kettle的结构-Enterprise Console

Enterprise Console(企业控制台)提供了一个小型的客户端,用于管理Pentaho Data
Integration企业版的部署

包括企业版本的证书管理、监控控制远程Pentaho Data Integration服务器上的活动、分析已登记的作业和转换的动态绩效

kettle的核心组件

Kettle概念模型


Kettle的执行分为两个层次:Job(作业)和Transformation(转换)。

kettle下载

kettle下载

下载网址:https://community.hitachivantara.com/docs/DOC-1009855

Kettle目录文件



Kettle部署

安装JDK

由于Kettle是Java语言开发的,该软件的允许需要Java运行环境的依赖。
需要先安装JDK,准备好Java软件的运行环境。

配置环境变量

JAVA_HOME:JDK的安装目录

KETTLE_HOME:kettle的解压目录

运行

Kettle界面简介

工具栏

工具图标

树形列表

工作区

Kettle快速体验

把数据从CSV文件复制到Excel文件

分析

转换控件

CSV文件输入

记得点击 获取字段 和选取文件(点击预览也可以预览数据)

Excel输出

记得点击字段里的 获取字段 按钮 和填写输出文件名

转换文件

按住shift+鼠标左键可以建立连接

运行

执行结果

日志

步骤度量

Metrics

Preview data

Kettle核心概念

可视化编程

Kettle可以被归类为可视化编程语言(Visula Programming Languages,VPL),因为Kettle可以使用图形化的方式定义复杂的ETL程序和工作流

Kettle里的图就是转换作业

可视化编程一直是Kettle里的核心概念,它可以让你快速构建复杂的ETL作业减低维护工作量。它通过隐藏很多技术细节,使IT领域更贴近于商务领域。

转换

Step步骤

Hop跳

数据行-数据类型


数据以数据行的形式沿着步骤移动。一个数据行是零到多个字段的集合,字段包含下面几种数据类型。
①String:字符类型数据
②Number:双精度浮点数。
③Integer:带符号长整型(64位)。
④BigNumber:任意精度数据。
⑤Date:带毫秒精度的日期时间值。
⑥Boolean:取值为true和false的布尔值。
⑦Binary:二进制字段可以包含图像、声音、视频及其他类型的二进制数据

并行

跳的这种基于行集缓存的规则允许每个步骤都是由一个独立的线程运行,这样并发程度最高。这一规则也允许数据以最小消耗内存的数据流的方式来处理。在数据仓库里,我们经常要处理大量数据,所以这种并发低消耗内存的方式也是ETL工具的核心需求。

对于kettle的转换,不可能定义一个执行顺序,因为所有步骤都以并发方式执行:当转换启动后,所有步骤都同时启动,从它们的输入跳中读取数据,并把处理过的数据写到输入跳,直到输入跳里不再有数据,就中止步骤的运行。当所有的步骤都中止了,整个转换就中止了。 (要与数据流向区分开)

如果你想要一个任务沿着指定的顺序执行,那么就要使用后面所讲的“作业”!